package com.cyan.note.dto.auth;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * 登录响应DTO
 * 
 * @author ZhangzhenYu
 * @since 2025-01-13
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class LoginResponse {
    
    /**
     * JWT Token
     */
    private String token;
    
    /**
     * Token类型
     */
    private String tokenType = "Bearer";
    
    /**
     * 用户基本信息
     */
    private UserInfo userInfo;
    
    /**
     * 用户信息内部类
     */
    @Data
    @Builder
    @NoArgsConstructor
    @AllArgsConstructor
    public static class UserInfo {
        /**
         * 用户ID
         */
        private Long userId;
        
        /**
         * 用户名
         */
        private String username;
        
        /**
         * 真实姓名
         */
        private String realName;
        
        /**
         * 用户角色
         */
        private String role;
        
        /**
         * 角色显示名称
         */
        private String roleName;
        
        /**
         * 店铺ID（店长和打手有效）
         */
        private Long shopId;
        
        /**
         * 店铺名称（店长和打手有效）
         */
        private String shopName;
        
        /**
         * 手机号
         */
        private String phone;
        
        /**
         * 用户状态
         */
        private String status;
    }
}